In a network communications system, generally a packet forwarded from a source node traverses numerous intermediate nodes before the desired destination node is reached. Along the way, the packet may be delayed by congestion at various ones of the intermediate nodes. Various mechanisms exist for signaling the source node that the packet is being delayed on its path to the destination. For example, in a frame relay network, FECN (forward explicit congestion notification) is a header bit transmitted by the source (sending) terminal requesting that the destination (receiving) terminal slow down its requests for data. BECN (backward explicit congestion notification) is a header bit transmitted by the destination terminal requesting that the source terminal send data more slowly. FECN and BECN are intended to minimize the possibility that packets will be discarded (and thus have to be resent) when more packets arrive than can be handled.
If the source terminal in a communications circuit generates frequent FECN bits, it indicates that the available network bandwidth (at that time) is not as great as can be supported by the destination terminal or some intermediate node in the path between the source and destination terminal. Likewise, if the destination generates frequent BECN bits, it means the available network bandwidth (at that time) is not as great as can be supported by the source. In either case, the root cause is lack of available bandwidth at the times during which FECN or BECN bits are generated. This can occur because of outdated or inadequate network infrastructure, heavy network traffic through at least a portion of the path, high levels of line noise, or portions of the system going down. Identifying and resolving these issues can improve overall network performance, especially when the system is called upon to carry a large volume of traffic.
However, while the FECN and BECN bits may be used to identify that congestion exists in a path, they do little to indicate exactly where in the path the congestion is occurring. For example, an overloaded intermediate node in the path has the effect of delaying communication over the entire path, thus causing the FECN/BECN bits to be set to regulate delays and packet loss. Backing off on the transmission bandwidth may reduce congestion at the one overloaded node, but it does not fully utilize the capacity of the remaining nodes in the path. It would be desirable to develop a mechanism which would enable congestion to be controlled within a network without unreasonably sacrificing network bandwidth.